package models

import "time"

type PaymentRecordCore struct {
	// 订单ID
	OrderID int `gorm:"column:order_id" json:"order_id"`
	// 收款类型:1定金,2尾款,3箱子押金,4箱子回款
	PaymentType int `gorm:"column:payment_type" json:"payment_type"`
	// 收款金额
	Amount float64 `gorm:"column:amount" json:"amount"`
	// 收款人
	OperatorID int `gorm:"column:operator_id" json:"operator_id"`
	// 备注
	Remark string `gorm:"column:remark" json:"remark"`
}

type PaymentRecord struct {
	// 收款记录ID
	ID int `gorm:"column:id;PRIMARY_KEY;AUTO_INCREMENT" json:"id"`
	// 创建时间
	CreatedAt *time.Time `gorm:"column:created_at;type:timestamp" json:"created_at"`
	// 更新时间
	UpdatedAt *time.Time `gorm:"column:updated_at;type:timestamp" json:"updated_at"`

	PaymentRecordCore
}

type PaymentRecordDelta struct {
	// 订单ID
	OrderID interface{} `gorm:"column:order_id" json:"order_id" swaggertype:"integer"`
	// 收款类型:1定金,2尾款,3箱子押金,4箱子回款
	PaymentType interface{} `gorm:"column:payment_type" json:"payment_type" swaggertype:"integer"`
	// 收款金额
	Amount interface{} `gorm:"column:amount" json:"amount" swaggertype:"string"`
	// 收款人
	OperatorID interface{} `gorm:"column:operator_id" json:"operator_id" swaggertype:"integer"`
	// 备注
	Remark interface{} `gorm:"column:remark" json:"remark" swaggertype:"string"`
}

type PaymentRecordDetail struct {
	PaymentRecord

	// 订单名称
	OrdersName string `gorm:"column:orders_name" json:"orders_name"`
	// 收款人名称
	OperatorName string `gorm:"column:operator_name" json:"operator_name"`
}

func (PaymentRecord) TableName() string {
	return "payment_record"
}
